home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Amiga Plus 1997 #3
/
Amiga Plus CD - 1997 - No. 03.iso
/
pd
/
programmierung
/
alienbreed3d2_src
/
cheesesauce
/
bumpmap.s
< prev
next >
Wrap
Text File
|
1997-01-31
|
30KB
|
1,970 lines
BumpMap:
tst.b smoothbumps
bne SmoothMap
move.w ConstCol,d0
move.w (a1,d0.w*2),a2
move.w #0,a2
tst.w above
beq bumpthefloor
move.l #24*128,d0
divs dst,d0
subq #1,d0
blt.s ordinary
beq.s OneBelow
subq.w #2,d0
blt TwoBelow
beq ThreeBelow
subq.w #2,d0
blt FourBelow
beq FiveBelow
subq.w #2,d0
blt SixBelow
beq SevenBelow
subq.w #2,d0
blt EightBelow
beq NineBelow
subq #2,d0
blt TenBelow
beq ElevenBelow
bra TwelveBelow
rts
*****************************
OneBelow:
moveq #0,d0
dbra d7,.BumpAcross
.BumpBefore:
and.w d1,d5
move.b (a0,d5.w*4),d0
blt.s .BumpBeforeHigh
move.w (a1,d0.w*2),104*4(a3)
moveq #0,d0
.BumpBeforeHigh:
move.w (a1,d0.w*2),(a3)
addq #4,a3
add.w a4,d3
addx.l d6,d5
dbcs d7,.BumpAcross
dbcc d7,.BumpBefore
bcc.s .Bumppast1
add.w #256,d5
bra.s .Bumppast1
.BumpAcross:
and.w d1,d5
move.b (a0,d5.w*4),d0
blt.s .BumpAcrossHigh
move.w (a1,d0.w*2),104*4(a3)
moveq #0,d0
.BumpAcrossHigh:
move.w (a1,d0.w*2),(a3)
addq #4,a3
add.w a4,d3
addx.l d2,d5
dbcs d7,.BumpAcross
dbcc d7,.BumpBefore
bcc.s .Bumppast1
add.w #256,d5
.Bumppast1:
move.w d4,d7
bne.s .notdoneyet
rts
.notdoneyet:
cmp.w #32,d7
ble.s .notoowide
move.w #32,d7
.notoowide
sub.w d7,d4
addq #4,a3
dbra d7,.BumpAcross
CACHE_FREEZE_ON d2
rts
*****************************
TwoBelow:
moveq #0,d0
dbra d7,.BumpAcross
.BumpBefore:
and.w d1,d5
move.b (a0,d5.w*4),d0
blt.s .BumpBeforeHigh
move.w (a1,d0.w*2),104*8(a3)
moveq #0,d0
.BumpBeforeHigh:
move.w (a1,d0.w*2),(a3)
addq #4,a3
add.w a4,d3
addx.l d6,d5
dbcs d7,.BumpAcross
dbcc d7,.BumpBefore
bcc.s .Bumppast1
add.w #256,d5
bra.s .Bumppast1
.BumpAcross:
and.w d1,d5
move.b (a0,d5.w*4),d0
blt.s .BumpAcrossHigh
move.w (a1,d0.w*2),104*8(a3)
move.w a2,104*4(a3)
moveq #0,d0
.BumpAcrossHigh:
move.w (a1,d0.w*2),(a3)
addq #4,a3
add.w a4,d3
addx.l d2,d5
dbcs d7,.BumpAcross
dbcc d7,.BumpBefore
bcc.s .Bumppast1
add.w #256,d5
.Bumppast1:
move.w d4,d7
bne.s .notdoneyet
rts
.notdoneyet:
cmp.w #32,d7
ble.s .notoowide
move.w #32,d7
.notoowide
sub.w d7,d4
addq #4,a3
dbra d7,.BumpAcross
CACHE_FREEZE_ON d2
rts
*****************************
ThreeBelow:
moveq #0,d0
dbra d7,.BumpAcross
.BumpBefore:
and.w d1,d5
move.b (a0,d5.w*4),d0
blt.s .BumpBeforeHigh
move.w (a1,d0.w*2),104*12(a3)
move.w a2,104*8(a3)
move.w a2,104*4(a3)
moveq #0,d0
.BumpBeforeHigh:
move.w (a1,d0.w*2),(a3)
addq #4,a3
add.w a4,d3
addx.l d6,d5
dbcs d7,.BumpAcross
dbcc d7,.BumpBefore
bcc.s .Bumppast1
add.w #256,d5
bra.s .Bumppast1
.BumpAcross:
and.w d1,d5
move.b (a0,d5.w*4),d0
blt.s .BumpAcrossHigh
move.w (a1,d0.w*2),104*12(a3)
move.w a2,104*8(a3)
move.w a2,104*4(a3)
moveq #0,d0
.BumpAcrossHigh:
move.w (a1,d0.w*2),(a3)
addq #4,a3
add.w a4,d3
addx.l d2,d5
dbcs d7,.BumpAcross
dbcc d7,.BumpBefore
bcc.s .Bumppast1
add.w #256,d5
.Bumppast1:
move.w d4,d7
bne.s .notdoneyet
rts
.notdoneyet:
cmp.w #32,d7
ble.s .notoowide
move.w #32,d7
.notoowide
sub.w d7,d4
addq #4,a3
dbra d7,.BumpAcross
CACHE_FREEZE_ON d2
rts
*****************************
FourBelow:
moveq #0,d0
dbra d7,.BumpAcross
.BumpBefore:
and.w d1,d5
move.b (a0,d5.w*4),d0
blt.s .BumpBeforeHigh
move.w (a1,d0.w*2),104*16(a3)
move.w a2,104*12(a3)
move.w a2,104*8(a3)
move.w a2,104*4(a3)
moveq #0,d0
.BumpBeforeHigh:
move.w (a1,d0.w*2),(a3)
addq #4,a3
add.w a4,d3
addx.l d6,d5
dbcs d7,.BumpAcross
dbcc d7,.BumpBefore
bcc.s .Bumppast1
add.w #256,d5
bra.s .Bumppast1
.BumpAcross:
and.w d1,d5
move.b (a0,d5.w*4),d0
blt.s .BumpAcrossHigh
move.w (a1,d0.w*2),104*16(a3)
move.w a2,104*12(a3)
move.w a2,104*8(a3)
move.w a2,104*4(a3)
moveq #0,d0
.BumpAcrossHigh:
move.w (a1,d0.w*2),(a3)
addq #4,a3
add.w a4,d3
addx.l d2,d5
dbcs d7,.BumpAcross
dbcc d7,.BumpBefore
bcc.s .Bumppast1
add.w #256,d5
.Bumppast1:
move.w d4,d7
bne.s .notdoneyet
rts
.notdoneyet:
cmp.w #32,d7
ble.s .notoowide
move.w #32,d7
.notoowide
sub.w d7,d4
addq #4,a3
dbra d7,.BumpAcross
CACHE_FREEZE_ON d2
rts
*****************************
FiveBelow:
moveq #0,d0
dbra d7,.BumpAcross
.BumpBefore:
and.w d1,d5
move.b (a0,d5.w*4),d0
blt.s .BumpBeforeHigh
move.w (a1,d0.w*2),104*20(a3)
move.w a2,104*16(a3)
move.w a2,104*12(a3)
move.w a2,104*8(a3)
move.w a2,104*4(a3)
moveq #0,d0
.BumpBeforeHigh:
move.w (a1,d0.w*2),(a3)
addq #4,a3
add.w a4,d3
addx.l d6,d5
dbcs d7,.BumpAcross
dbcc d7,.BumpBefore
bcc.s .Bumppast1
add.w #256,d5
bra.s .Bumppast1
.BumpAcross:
and.w d1,d5
move.b (a0,d5.w*4),d0
blt.s .BumpAcrossHigh
move.w (a1,d0.w*2),104*20(a3)
move.w a2,104*16(a3)
move.w a2,104*12(a3)
move.w a2,104*8(a3)
move.w a2,104*4(a3)
moveq #0,d0
.BumpAcrossHigh:
move.w (a1,d0.w*2),(a3)
addq #4,a3
add.w a4,d3
addx.l d2,d5
dbcs d7,.BumpAcross
dbcc d7,.BumpBefore
bcc.s .Bumppast1
add.w #256,d5
.Bumppast1:
move.w d4,d7
bne.s .notdoneyet
rts
.notdoneyet:
cmp.w #32,d7
ble.s .notoowide
move.w #32,d7
.notoowide
sub.w d7,d4
addq #4,a3
dbra d7,.BumpAcross
CACHE_FREEZE_ON d2
rts
*****************************
SixBelow:
moveq #0,d0
dbra d7,.BumpAcross
.BumpBefore:
and.w d1,d5
move.b (a0,d5.w*4),d0
blt.s .BumpBeforehigh
move.w (a1,d0.w*2),104*24(a3)
move.w a2,104*20(a3)
move.w a2,104*16(a3)
move.w a2,104*12(a3)
move.w a2,104*8(a3)
move.w a2,104*4(a3)
moveq #0,d0
.BumpBeforehigh:
move.w (a1,d0.w*2),(a3)
addq #4,a3
add.w a4,d3
addx.l d6,d5
dbcs d7,.BumpAcross
dbcc d7,.BumpBefore
bcc.s .Bumppast1
add.w #256,d5
bra.s .Bumppast1
.BumpAcross:
and.w d1,d5
move.b (a0,d5.w*4),d0
blt.s .BumpAcrossHigh
move.w (a1,d0.w*2),104*24(a3)
move.w a2,104*20(a3)
move.w a2,104*16(a3)
move.w a2,104*12(a3)
move.w a2,104*8(a3)
move.w a2,104*4(a3)
moveq #0,d0
.BumpAcrossHigh:
move.w (a1,d0.w*2),(a3)
addq #4,a3
add.w a4,d3
addx.l d2,d5
dbcs d7,.BumpAcross
dbcc d7,.BumpBefore
bcc.s .Bumppast1
add.w #256,d5
.Bumppast1:
move.w d4,d7
bne.s .notdoneyet
rts
.notdoneyet:
cmp.w #32,d7
ble.s .notoowide
move.w #32,d7
.notoowide
sub.w d7,d4
addq #4,a3
dbra d7,.BumpAcross
CACHE_FREEZE_ON d2
rts
*****************************
SevenBelow:
moveq #0,d0
dbra d7,.BumpAcross
.BumpBefore:
and.w d1,d5
move.b (a0,d5.w*4),d0
blt.s .BumpBeforeHigh
move.w (a1,d0.w*2),104*28(a3)
move.w a2,104*24(a3)
move.w a2,104*20(a3)
move.w a2,104*16(a3)
move.w a2,104*12(a3)
move.w a2,104*8(a3)
move.w a2,104*4(a3)
moveq #0,d0
.BumpBeforeHigh:
move.w (a1,d0.w*2),(a3)
addq #4,a3
add.w a4,d3
addx.l d6,d5
dbcs d7,.BumpAcross
dbcc d7,.BumpBefore
bcc.s .Bumppast1
add.w #256,d5
bra.s .Bumppast1
.BumpAcross:
and.w d1,d5
move.b (a0,d5.w*4),d0
blt.s .BumpAcrossHigh
move.w (a1,d0.w*2),104*28(a3)
move.w a2,104*24(a3)
move.w a2,104*20(a3)
move.w a2,104*16(a3)
move.w a2,104*12(a3)
move.w a2,104*8(a3)
move.w a2,104*4(a3)
moveq #0,d0
.BumpAcrossHigh:
move.w (a1,d0.w*2),(a3)
addq #4,a3
add.w a4,d3
addx.l d2,d5
dbcs d7,.BumpAcross
dbcc d7,.BumpBefore
bcc.s .Bumppast1
add.w #256,d5
.Bumppast1:
move.w d4,d7
bne.s .notdoneyet
rts
.notdoneyet:
cmp.w #32,d7
ble.s .notoowide
move.w #32,d7
.notoowide
sub.w d7,d4
addq #4,a3
dbra d7,.BumpAcross
CACHE_FREEZE_ON d2
rts
*****************************
EightBelow:
moveq #0,d0
dbra d7,.BumpAcross
.BumpBefore:
and.w d1,d5
move.b (a0,d5.w*4),d0
blt.s .BumpBeforeHigh
move.w (a1,d0.w*2),104*32(a3)
move.w a2,104*28(a3)
move.w a2,104*24(a3)
move.w a2,104*20(a3)
move.w a2,104*16(a3)
move.w a2,104*12(a3)
move.w a2,104*8(a3)
move.w a2,104*4(a3)
moveq #0,d0
.BumpBeforeHigh:
move.w (a1,d0.w*2),(a3)
addq #4,a3
add.w a4,d3
addx.l d6,d5
dbcs d7,.BumpAcross
dbcc d7,.BumpBefore
bcc.s .Bumppast1
add.w #256,d5
bra.s .Bumppast1
.BumpAcross:
and.w d1,d5
move.b (a0,d5.w*4),d0
blt.s .BumpAcrossHigh
move.w (a1,d0.w*2),104*32(a3)
move.w a2,104*28(a3)
move.w a2,104*24(a3)
move.w a2,104*20(a3)
move.w a2,104*16(a3)
move.w a2,104*12(a3)
move.w a2,104*8(a3)
move.w a2,104*4(a3)
moveq #0,d0
.BumpAcrossHigh:
move.w (a1,d0.w*2),(a3)
addq #4,a3
add.w a4,d3
addx.l d2,d5
dbcs d7,.BumpAcross
dbcc d7,.BumpBefore
bcc.s .Bumppast1
add.w #256,d5
.Bumppast1:
move.w d4,d7
bne.s .notdoneyet
rts
.notdoneyet:
cmp.w #32,d7
ble.s .notoowide
move.w #32,d7
.notoowide
sub.w d7,d4
addq #4,a3
dbra d7,.BumpAcross
CACHE_FREEZE_ON d2
rts
*****************************
NineBelow:
moveq #0,d0
dbra d7,.BumpAcross
.BumpBefore:
and.w d1,d5
move.b (a0,d5.w*4),d0
blt.s .BumpBeforeHigh
move.w (a1,d0.w*2),104*36(a3)
move.w a2,104*32(a3)
move.w a2,104*28(a3)
move.w a2,104*24(a3)
move.w a2,104*20(a3)
move.w a2,104*16(a3)
move.w a2,104*12(a3)
move.w a2,104*8(a3)
move.w a2,104*4(a3)
moveq #0,d0
.BumpBeforeHigh:
move.w (a1,d0.w*2),(a3)
addq #4,a3
add.w a4,d3
addx.l d6,d5
dbcs d7,.BumpAcross
dbcc d7,.BumpBefore
bcc.s .Bumppast1
add.w #256,d5
bra.s .Bumppast1
.BumpAcross:
and.w d1,d5
move.b (a0,d5.w*4),d0
blt.s .BumpAcrossHigh
move.w (a1,d0.w*2),104*36(a3)
move.w a2,104*32(a3)
move.w a2,104*28(a3)
move.w a2,104*24(a3)
move.w a2,104*20(a3)
move.w a2,104*16(a3)
move.w a2,104*12(a3)
move.w a2,104*8(a3)
move.w a2,104*4(a3)
moveq #0,d0
.BumpAcrossHigh:
move.w (a1,d0.w*2),(a3)
addq #4,a3
add.w a4,d3
addx.l d2,d5
dbcs d7,.BumpAcross
dbcc d7,.BumpBefore
bcc.s .Bumppast1
add.w #256,d5
.Bumppast1:
move.w d4,d7
bne.s .notdoneyet
rts
.notdoneyet:
cmp.w #32,d7
ble.s .notoowide
move.w #32,d7
.notoowide
sub.w d7,d4
addq #4,a3
dbra d7,.BumpAcross
CACHE_FREEZE_ON d2
rts
*****************************
TenBelow:
moveq #0,d0
dbra d7,.BumpAcross
.BumpBefore:
and.w d1,d5
move.b (a0,d5.w*4),d0
blt.s .BumpBeforeHigh
move.w (a1,d0.w*2),104*40(a3)
move.w a2,104*36(a3)
move.w a2,104*32(a3)
move.w a2,104*28(a3)
move.w a2,104*24(a3)
move.w a2,104*20(a3)
move.w a2,104*16(a3)
move.w a2,104*12(a3)
; move.w a2,104*8(a3)
; move.w a2,104*4(a3)
moveq #0,d0
.BumpBeforeHigh:
move.w (a1,d0.w*2),(a3)
addq #4,a3
add.w a4,d3
addx.l d6,d5
dbcs d7,.BumpAcross
dbcc d7,.BumpBefore
bcc.s .Bumppast1
add.w #256,d5
bra.s .Bumppast1
.BumpAcross:
and.w d1,d5
move.b (a0,d5.w*4),d0
blt.s .BumpAcrossHigh
move.w (a1,d0.w*2),104*40(a3)
move.w a2,104*36(a3)
move.w a2,104*32(a3)
move.w a2,104*28(a3)
move.w a2,104*24(a3)
move.w a2,104*20(a3)
move.w a2,104*16(a3)
move.w a2,104*12(a3)
; move.w a2,104*8(a3)
; move.w a2,104*4(a3)
moveq #0,d0
.BumpAcrossHigh:
move.w (a1,d0.w*2),(a3)
addq #4,a3
add.w a4,d3
addx.l d2,d5
dbcs d7,.BumpAcross
dbcc d7,.BumpBefore
bcc.s .Bumppast1
add.w #256,d5
.Bumppast1:
move.w d4,d7
bne.s .notdoneyet
rts
.notdoneyet:
cmp.w #32,d7
ble.s .notoowide
move.w #32,d7
.notoowide
sub.w d7,d4
addq #4,a3
dbra d7,.BumpAcross
CACHE_FREEZE_ON d2
rts
*****************************
ElevenBelow:
moveq #0,d0
dbra d7,.BumpAcross
.BumpBefore:
and.w d1,d5
move.b (a0,d5.w*4),d0
blt.s .BumpBeforeHigh
move.w (a1,d0.w*2),104*44(a3)
move.w a2,104*40(a3)
move.w a2,104*36(a3)
move.w a2,104*32(a3)
move.w a2,104*28(a3)
move.w a2,104*24(a3)
move.w a2,104*20(a3)
move.w a2,104*16(a3)
; move.w a2,104*12(a3)
; move.w a2,104*8(a3)
; move.w a2,104*4(a3)
moveq #0,d0
.BumpBeforeHigh:
move.w (a1,d0.w*2),(a3)
addq #4,a3
add.w a4,d3
addx.l d6,d5
dbcs d7,.BumpAcross
dbcc d7,.BumpBefore
bcc.s .Bumppast1
add.w #256,d5
bra.s .Bumppast1
.BumpAcross:
and.w d1,d5
move.b (a0,d5.w*4),d0
blt.s .BumpAcrossHigh
move.w (a1,d0.w*2),104*44(a3)
move.w a2,104*40(a3)
move.w a2,104*36(a3)
move.w a2,104*32(a3)
move.w a2,104*28(a3)
move.w a2,104*24(a3)
move.w a2,104*20(a3)
move.w a2,104*16(a3)
; move.w a2,104*12(a3)
; move.w a2,104*8(a3)
; move.w a2,104*4(a3)
moveq #0,d0
.BumpAcrossHigh:
move.w (a1,d0.w*2),(a3)
addq #4,a3
add.w a4,d3
addx.l d2,d5
dbcs d7,.BumpAcross
dbcc d7,.BumpBefore
bcc.s .Bumppast1
add.w #256,d5
.Bumppast1:
move.w d4,d7
bne.s .notdoneyet
rts
.notdoneyet:
cmp.w #32,d7
ble.s .notoowide
move.w #32,d7
.notoowide
sub.w d7,d4
addq #4,a3
dbra d7,.BumpAcross
CACHE_FREEZE_ON d2
rts
*****************************
TwelveBelow:
moveq #0,d0
dbra d7,.BumpAcross
.BumpBefore:
and.w d1,d5
move.b (a0,d5.w*4),d0
blt.s .BumpBeforeHigh
move.w (a1,d0.w*2),104*48(a3)
move.w a2,104*44(a3)
move.w a2,104*40(a3)
move.w a2,104*36(a3)
move.w a2,104*32(a3)
move.w a2,104*28(a3)
move.w a2,104*24(a3)
move.w a2,104*20(a3)
; move.w a2,104*16(a3)
; move.w a2,104*12(a3)
; move.w a2,104*8(a3)
; move.w a2,104*4(a3)
moveq #0,d0
.BumpBeforeHigh:
move.w (a1,d0.w*2),(a3)
addq #4,a3
add.w a4,d3
addx.l d6,d5
dbcs d7,.BumpAcross
dbcc d7,.BumpBefore
bcc.s .Bumppast1
add.w #256,d5
bra.s .Bumppast1
.BumpAcross:
and.w d1,d5
move.b (a0,d5.w*4),d0
blt.s .BumpAcrossHigh
move.w (a1,d0.w*2),104*48(a3)
move.w a2,104*44(a3)
move.w a2,104*40(a3)
move.w a2,104*36(a3)
move.w a2,104*32(a3)
move.w a2,104*28(a3)
move.w a2,104*24(a3)
move.w a2,104*20(a3)
; move.w a2,104*16(a3)
; move.w a2,104*12(a3)
; move.w a2,104*8(a3)
; move.w a2,104*4(a3)
moveq #0,d0
.BumpAcrossHigh:
move.w (a1,d0.w*2),(a3)
addq #4,a3
add.w a4,d3
addx.l d2,d5
dbcs d7,.BumpAcross
dbcc d7,.BumpBefore
bcc.s .Bumppast1
add.w #256,d5
.Bumppast1:
move.w d4,d7
bne.s .notdoneyet
rts
.notdoneyet:
cmp.w #32,d7
ble.s .notoowide
move.w #32,d7
.notoowide
sub.w d7,d4
addq #4,a3
dbra d7,.BumpAcross
CACHE_FREEZE_ON d2
rts
bumpthefloor:
move.l #14*128,d0
divs dst,d0
subq.w #1,d0
blt ordinary
beq.s OneAbove
subq.w #2,d0
blt TwoAbove
beq ThreeAbove
subq.w #2,d0
blt FourAbove
beq FiveAbove
subq.w #2,d0
blt SixAbove
beq SevenAbove
bra EightAbove
moveq #0,d0
rts
*****************************
OneAbove:
moveq #0,d0
dbra d7,.BumpAcross
.BumpBefore:
and.w d1,d5
move.b (a0,d5.w*4),d0
blt.s .BumpBeforeHigh
move.w (a1,d0.w*2),-104*4(a3)
.BumpBeforeHigh:
move.w (a1,d0.w*2),(a3)
addq #4,a3
add.w a4,d3
addx.l d6,d5
dbcs d7,.BumpAcross
dbcc d7,.BumpBefore
bcc.s .Bumppast1
add.w #256,d5
bra.s .Bumppast1
.BumpAcross:
and.w d1,d5
move.b (a0,d5.w*4),d0
blt.s .BumpAcrossHigh
move.w (a1,d0.w*2),-104*4(a3)
.BumpAcrossHigh:
move.w (a1,d0.w*2),(a3)
addq #4,a3
add.w a4,d3
addx.l d2,d5
dbcs d7,.BumpAcross
dbcc d7,.BumpBefore
bcc.s .Bumppast1
add.w #256,d5
.Bumppast1:
move.w d4,d7
bne.s .notdoneyet
rts
.notdoneyet:
cmp.w #32,d7
ble.s .notoowide
move.w #32,d7
.notoowide
sub.w d7,d4
addq #4,a3
dbra d7,.BumpAcross
CACHE_FREEZE_ON d2
rts
*****************************
TwoAbove:
moveq #0,d0
dbra d7,.BumpAcross
.BumpBefore:
and.w d1,d5
move.b (a0,d5.w*4),d0
blt.s .BumpBeforeHigh
move.w (a1,d0.w*2),-104*8(a3)
move.w a2,-104*4(a3)
.BumpBeforeHigh:
move.w (a1,d0.w*2),(a3)
addq #4,a3
add.w a4,d3
addx.l d6,d5
dbcs d7,.BumpAcross
dbcc d7,.BumpBefore
bcc.s .Bumppast1
add.w #256,d5
bra.s .Bumppast1
.BumpAcross:
and.w d1,d5
move.b (a0,d5.w*4),d0
blt.s .BumpAcrossHigh
move.w (a1,d0.w*2),-104*8(a3)
move.w a2,-104*4(a3)
.BumpAcrossHigh:
move.w (a1,d0.w*2),(a3)
addq #4,a3
add.w a4,d3
addx.l d2,d5
dbcs d7,.BumpAcross
dbcc d7,.BumpBefore
bcc.s .Bumppast1
add.w #256,d5
.Bumppast1:
move.w d4,d7
bne.s .notdoneyet
rts
.notdoneyet:
cmp.w #32,d7
ble.s .notoowide
move.w #32,d7
.notoowide
sub.w d7,d4
addq #4,a3
dbra d7,.BumpAcross
CACHE_FREEZE_ON d2
rts
*****************************
ThreeAbove:
moveq #0,d0
dbra d7,.BumpAcross
.BumpBefore:
and.w d1,d5
move.b (a0,d5.w*4),d0
blt.s .BumpBeforeHigh
move.w (a1,d0.w*2),-104*12(a3)
move.w a2,-104*8(a3)
move.w a2,-104*4(a3)
.BumpBeforeHigh:
move.w (a1,d0.w*2),(a3)
addq #4,a3
add.w a4,d3
addx.l d6,d5
dbcs d7,.BumpAcross
dbcc d7,.BumpBefore
bcc.s .Bumppast1
add.w #256,d5
bra.s .Bumppast1
.BumpAcross:
and.w d1,d5
move.b (a0,d5.w*4),d0
blt.s .BumpAcrossHigh
move.w (a1,d0.w*2),-104*12(a3)
move.w a2,-104*8(a3)
move.w a2,-104*4(a3)
.BumpAcrossHigh:
move.w (a1,d0.w*2),(a3)
addq #4,a3
add.w a4,d3
addx.l d2,d5
dbcs d7,.BumpAcross
dbcc d7,.BumpBefore
bcc.s .Bumppast1
add.w #256,d5
.Bumppast1:
move.w d4,d7
bne.s .notdoneyet
rts
.notdoneyet:
cmp.w #32,d7
ble.s .notoowide
move.w #32,d7
.notoowide
sub.w d7,d4
addq #4,a3
dbra d7,.BumpAcross
CACHE_FREEZE_ON d2
rts
*****************************
FourAbove:
moveq #0,d0
dbra d7,.BumpAcross
.BumpBefore:
and.w d1,d5
move.b (a0,d5.w*4),d0
blt.s .BumpBeforeHigh
move.w (a1,d0.w*2),-104*16(a3)
move.w a2,-104*12(a3)
move.w a2,-104*8(a3)
move.w a2,-104*4(a3)
.BumpBeforeHigh:
move.w (a1,d0.w*2),(a3)
addq #4,a3
add.w a4,d3
addx.l d6,d5
dbcs d7,.BumpAcross
dbcc d7,.BumpBefore
bcc.s .Bumppast1
add.w #256,d5
bra.s .Bumppast1
.BumpAcross:
and.w d1,d5
move.b (a0,d5.w*4),d0
blt.s .BumpAcrossHigh
move.w (a1,d0.w*2),-104*16(a3)
move.w a2,-104*12(a3)
move.w a2,-104*8(a3)
move.w a2,-104*4(a3)
.BumpAcrossHigh:
move.w (a1,d0.w*2),(a3)
addq #4,a3
add.w a4,d3
addx.l d2,d5
dbcs d7,.BumpAcross
dbcc d7,.BumpBefore
bcc.s .Bumppast1
add.w #256,d5
.Bumppast1:
move.w d4,d7
bne.s .notdoneyet
rts
.notdoneyet:
cmp.w #32,d7
ble.s .notoowide
move.w #32,d7
.notoowide
sub.w d7,d4
addq #4,a3
dbra d7,.BumpAcross
CACHE_FREEZE_ON d2
rts
*****************************
FiveAbove:
moveq #0,d0
dbra d7,.BumpAcross
.BumpBefore:
and.w d1,d5
move.b (a0,d5.w*4),d0
blt.s .BumpBeforeHigh
move.w (a1,d0.w*2),-104*20(a3)
move.w a2,-104*16(a3)
move.w a2,-104*12(a3)
move.w a2,-104*8(a3)
move.w a2,-104*4(a3)
.BumpBeforeHigh:
move.w (a1,d0.w*2),(a3)
addq #4,a3
add.w a4,d3
addx.l d6,d5
dbcs d7,.BumpAcross
dbcc d7,.BumpBefore
bcc.s .Bumppast1
add.w #256,d5
bra.s .Bumppast1
.BumpAcross:
and.w d1,d5
move.b (a0,d5.w*4),d0
blt.s .BumpAcrossHigh
move.w (a1,d0.w*2),-104*20(a3)
move.w a2,-104*16(a3)
move.w a2,-104*12(a3)
move.w a2,-104*8(a3)
move.w a2,-104*4(a3)
.BumpAcrossHigh:
move.w (a1,d0.w*2),(a3)
addq #4,a3
add.w a4,d3
addx.l d2,d5
dbcs d7,.BumpAcross
dbcc d7,.BumpBefore
bcc.s .Bumppast1
add.w #256,d5
.Bumppast1:
move.w d4,d7
bne.s .notdoneyet
rts
.notdoneyet:
cmp.w #32,d7
ble.s .notoowide
move.w #32,d7
.notoowide
sub.w d7,d4
addq #4,a3
dbra d7,.BumpAcross
CACHE_FREEZE_ON d2
rts
*****************************
SixAbove:
moveq #0,d0
dbra d7,.BumpAcross
.BumpBefore:
and.w d1,d5
move.b (a0,d5.w*4),d0
blt.s .BumpBeforeHigh
move.w (a1,d0.w*2),-104*24(a3)
move.w a2,-104*20(a3)
move.w a2,-104*16(a3)
move.w a2,-104*12(a3)
move.w a2,-104*8(a3)
move.w a2,-104*4(a3)
.BumpBeforeHigh:
move.w (a1,d0.w*2),(a3)
addq #4,a3
add.w a4,d3
addx.l d6,d5
dbcs d7,.BumpAcross
dbcc d7,.BumpBefore
bcc.s .Bumppast1
add.w #256,d5
bra.s .Bumppast1
.BumpAcross:
and.w d1,d5
move.b (a0,d5.w*4),d0
blt.s .BumpAcrossHigh
move.w (a1,d0.w*2),-104*24(a3)
move.w a2,-104*20(a3)
move.w a2,-104*16(a3)
move.w a2,-104*12(a3)
move.w a2,-104*8(a3)
move.w a2,-104*4(a3)
.BumpAcrossHigh:
move.w (a1,d0.w*2),(a3)
addq #4,a3
add.w a4,d3
addx.l d2,d5
dbcs d7,.BumpAcross
dbcc d7,.BumpBefore
bcc.s .Bumppast1
add.w #256,d5
.Bumppast1:
move.w d4,d7
bne.s .notdoneyet
rts
.notdoneyet:
cmp.w #32,d7
ble.s .notoowide
move.w #32,d7
.notoowide
sub.w d7,d4
addq #4,a3
dbra d7,.BumpAcross
CACHE_FREEZE_ON d2
rts
*****************************
SevenAbove:
moveq #0,d0
dbra d7,.BumpAcross
.BumpBefore:
and.w d1,d5
move.b (a0,d5.w*4),d0
blt.s .BumpBeforeHigh
move.w (a1,d0.w*2),-104*28(a3)
move.w a2,-104*24(a3)
move.w a2,-104*20(a3)
move.w a2,-104*16(a3)
move.w a2,-104*12(a3)
move.w a2,-104*8(a3)
move.w a2,-104*4(a3)
.BumpBeforeHigh:
move.w (a1,d0.w*2),(a3)
addq #4,a3
add.w a4,d3
addx.l d6,d5
dbcs d7,.BumpAcross
dbcc d7,.BumpBefore
bcc.s .Bumppast1
add.w #256,d5
bra.s .Bumppast1
.BumpAcross:
and.w d1,d5
move.b (a0,d5.w*4),d0
blt.s .BumpAcrossHigh
move.w (a1,d0.w*2),-104*28(a3)
move.w a2,-104*24(a3)
move.w a2,-104*20(a3)
move.w a2,-104*16(a3)
move.w a2,-104*12(a3)
move.w a2,-104*8(a3)
move.w a2,-104*4(a3)
.BumpAcrossHigh:
move.w (a1,d0.w*2),(a3)
addq #4,a3
add.w a4,d3
addx.l d2,d5
dbcs d7,.BumpAcross
dbcc d7,.BumpBefore
bcc.s .Bumppast1
add.w #256,d5
.Bumppast1:
move.w d4,d7
bne.s .notdoneyet
rts
.notdoneyet:
cmp.w #32,d7
ble.s .notoowide
move.w #32,d7
.notoowide
sub.w d7,d4
addq #4,a3
dbra d7,.BumpAcross
CACHE_FREEZE_ON d2
rts
*****************************
EightAbove:
moveq #0,d0
dbra d7,.BumpAcross
.BumpBefore:
and.w d1,d5
move.b (a0,d5.w*4),d0
blt.s .BumpBeforeHigh
move.w (a1,d0.w*2),-104*32(a3)
move.w a2,-104*28(a3)
move.w a2,-104*24(a3)
move.w a2,-104*20(a3)
move.w a2,-104*16(a3)
move.w a2,-104*12(a3)
move.w a2,-104*8(a3)
move.w a2,-104*4(a3)
.BumpBeforeHigh:
move.w (a1,d0.w*2),(a3)
addq #4,a3
add.w a4,d3
addx.l d6,d5
dbcs d7,.BumpAcross
dbcc d7,.BumpBefore
bcc.s .Bumppast1
add.w #256,d5
bra.s .Bumppast1
.BumpAcross:
and.w d1,d5
move.b (a0,d5.w*4),d0
blt.s .BumpAcrossHigh
move.w (a1,d0.w*2),-104*32(a3)
move.w a2,-104*28(a3)
move.w a2,-104*24(a3)
move.w a2,-104*20(a3)
move.w a2,-104*16(a3)
move.w a2,-104*12(a3)
move.w a2,-104*8(a3)
move.w a2,-104*4(a3)
.BumpAcrossHigh:
move.w (a1,d0.w*2),(a3)
addq #4,a3
add.w a4,d3
addx.l d2,d5
dbcs d7,.BumpAcross
dbcc d7,.BumpBefore
bcc.s .Bumppast1
add.w #256,d5
.Bumppast1:
move.w d4,d7
bne.s .notdoneyet
rts
.notdoneyet:
cmp.w #32,d7
ble.s .notoowide
move.w #32,d7
.notoowide
sub.w d7,d4
addq #4,a3
dbra d7,.BumpAcross
CACHE_FREEZE_ON d2
rts
SmoothMap:
move.w #0,a2
tst.w above
beq smooththefloor
move.l #14*128,d0
divs dst,d0
subq #1,d0
blt ordinary
beq.s OneBelowS
subq.w #2,d0
blt TwoBelowS
beq ThreeBelowS
subq.w #2,d0
blt FourBelowS
beq FiveBelowS
subq.w #2,d0
blt SixBelowS
beq SevenBelowS
; bra EightBelowS
rts
*****************************
OneBelowS:
moveq #0,d0
dbra d7,.BumpAcross
.BumpBefore:
and.w d1,d5
move.b (a0,d5.w*4),d0
blt.s .BumpBeforeHigh
move.w (a1,d0.w*2),104*4(a3)
.BumpBeforeHigh:
move.w (a1,d0.w*2),(a3)
addq #4,a3
add.w a4,d3
addx.l d6,d5
dbcs d7,.BumpAcross
dbcc d7,.BumpBefore
bcc.s .Bumppast1
add.w #256,d5
bra.s .Bumppast1
.BumpAcross:
and.w d1,d5
move.b (a0,d5.w*4),d0
blt.s .BumpAcrossHigh
move.w (a1,d0.w*2),104*4(a3)
.BumpAcrossHigh:
move.w (a1,d0.w*2),(a3)
addq #4,a3
add.w a4,d3
addx.l d2,d5
dbcs d7,.BumpAcross
dbcc d7,.BumpBefore
bcc.s .Bumppast1
add.w #256,d5
.Bumppast1:
move.w d4,d7
bne.s .notdoneyet
rts
.notdoneyet:
cmp.w #32,d7
ble.s .notoowide
move.w #32,d7
.notoowide
sub.w d7,d4
addq #4,a3
dbra d7,.BumpAcross
CACHE_FREEZE_ON d2
rts
*****************************
TwoBelowS:
moveq #0,d0
dbra d7,.BumpAcross
.BumpBefore:
and.w d1,d5
move.b (a0,d5.w*4),d0
blt.s .BumpBeforeHigh
move.w (a1,d0.w*2),a2
lsr.b #1,d0
bcc.s .BBHH
move.w a2,104*8(a3)
.BBHH
move.w a2,104*4(a3)
.BumpBeforeHigh:
.BBbumped
move.w (a1,d0.w*2),(a3)
addq #4,a3
add.w a4,d3
addx.l d6,d5
dbcs d7,.BumpAcross
dbcc d7,.BumpBefore
bcc.s .Bumppast1
add.w #256,d5
bra.s .Bumppast1
.BumpAcross:
and.w d1,d5
move.b (a0,d5.w*4),d0
blt.s .BumpAcrossHigh
move.w (a1,d0.w*2),a2
lsr.b #1,d0
bcc.s .BAHH
move.w a2,104*8(a3)
.BAHH
move.w a2,104*4(a3)
.BumpAcrossHigh:
.BAbumped
move.w (a1,d0.w*2),(a3)
addq #4,a3
add.w a4,d3
addx.l d2,d5
dbcs d7,.BumpAcross
dbcc d7,.BumpBefore
bcc.s .Bumppast1
add.w #256,d5
.Bumppast1:
move.w d4,d7
bne.s .notdoneyet
rts
.notdoneyet:
cmp.w #32,d7
ble.s .notoowide
move.w #32,d7
.notoowide
sub.w d7,d4
addq #4,a3
dbra d7,.BumpAcross
CACHE_FREEZE_ON d2
rts
*****************************
ThreeBelowS:
moveq #0,d0
dbra d7,.BumpAcross
.BumpBefore:
and.w d1,d5
move.b (a0,d5.w*4),d0
blt.s .BumpBeforeHigh
move.w (a1,d0.w*2),a2
lsr.b #1,d0
bcc.s .BBL
move.w a2,104*12(a3)
.BBL:
move.w a2,104*8(a3)
move.w a2,104*4(a3)
bra.s .BBB
.BumpBeforeHigh:
move.w (a1,d0.w*2),a2
lsr.b #1,d0
bcc.s .BBB
move.w a2,104*4(a3)
.BBB:
move.w a2,(a3)
addq #4,a3
add.w a4,d3
addx.l d6,d5
dbcs d7,.BumpAcross
dbcc d7,.BumpBefore
bcc.s .Bumppast1
add.w #256,d5
bra.s .Bumppast1
.BumpAcross:
and.w d1,d5
move.b (a0,d5.w*4),d0
blt.s .BumpAcrossHigh
move.w (a1,d0.w*2),a2
lsr.b #1,d0
bcc.s .BAL
move.w a2,104*12(a3)
.BAL:
move.w a2,104*8(a3)
move.w a2,104*4(a3)
bra.s .BAB
.BumpAcrossHigh:
move.w (a1,d0.w*2),a2
lsr.b #1,d0
bcc.s .BAB
move.w a2,104*4(a3)
.BAB:
move.w a2,(a3)
addq #4,a3
add.w a4,d3
addx.l d2,d5
dbcs d7,.BumpAcross
dbcc d7,.BumpBefore
bcc.s .Bumppast1
add.w #256,d5
.Bumppast1:
move.w d4,d7
bne.s .notdoneyet
rts
.notdoneyet:
cmp.w #32,d7
ble.s .notoowide
move.w #32,d7
.notoowide
sub.w d7,d4
addq #4,a3
dbra d7,.BumpAcross
CACHE_FREEZE_ON d2
rts
*****************************
FourBelowS:
moveq #0,d0
dbra d7,.BumpAcross
.BumpBefore:
and.w d1,d5
move.b (a0,d5.w*4),d0
blt.s .BumpBeforeHigh
move.w (a1,d0.w*2),a2
lsr.b #1,d0
bcc.s .BBL
move.w a2,104*16(a3)
.BBL:
move.w a2,104*12(a3)
move.w a2,104*8(a3)
move.w a2,104*4(a3)
bra.s .BBB
.BumpBeforeHigh:
move.w (a1,d0.w*2),a2
lsr.b #1,d0
bcc.s .BBB
move.w a2,104*4(a3)
.BBB:
move.w a2,(a3)
addq #4,a3
add.w a4,d3
addx.l d6,d5
dbcs d7,.BumpAcross
dbcc d7,.BumpBefore
bcc.s .Bumppast1
add.w #256,d5
bra.s .Bumppast1
.BumpAcross:
and.w d1,d5
move.b (a0,d5.w*4),d0
blt.s .BumpAcrossHigh
move.w (a1,d0.w*2),a2
lsr.b #1,d0
bcc.s .BAL
move.w a2,104*16(a3)
.BAL:
move.w a2,104*12(a3)
move.w a2,104*8(a3)
move.w a2,104*4(a3)
bra.s .BAB
.BumpAcrossHigh:
move.w (a1,d0.w*2),a2
lsr.b #1,d0
bcc.s .BAB
move.w a2,104*4(a3)
.BAB:
move.w a2,(a3)
addq #4,a3
add.w a4,d3
addx.l d2,d5
dbcs d7,.BumpAcross
dbcc d7,.BumpBefore
bcc.s .Bumppast1
add.w #256,d5
.Bumppast1:
move.w d4,d7
bne.s .notdoneyet
rts
.notdoneyet:
cmp.w #32,d7
ble.s .notoowide
move.w #32,d7
.notoowide
sub.w d7,d4
addq #4,a3
dbra d7,.BumpAcross
CACHE_FREEZE_ON d2
rts
*****************************
FiveBelowS:
moveq #0,d0
dbra d7,.BumpAcross
.BumpBefore:
and.w d1,d5
move.b (a0,d5.w*4),d0
blt.s .BumpBeforeHigh
move.w (a1,d0.w*2),a2
lsr.b #1,d0
bcc.s .BBL
move.w a2,104*20(a3)
.BBL:
move.w a2,104*16(a3)
move.w a2,104*12(a3)
move.w a2,104*8(a3)
move.w a2,104*4(a3)
bra.s .BBB
.BumpBeforeHigh:
move.w (a1,d0.w*2),a2
lsr.b #1,d0
bcc.s .BBB
move.w a2,104*8(a3)
move.w a2,104*4(a3)
.BBB:
move.w a2,(a3)
addq #4,a3
add.w a4,d3
addx.l d6,d5
dbcs d7,.BumpAcross
dbcc d7,.BumpBefore
bcc.s .Bumppast1
add.w #256,d5
bra.s .Bumppast1
.BumpAcross:
and.w d1,d5
move.b (a0,d5.w*4),d0
blt.s .BumpAcrossHigh
move.w (a1,d0.w*2),a2
lsr.b #1,d0
bcc.s .BAL
move.w a2,104*20(a3)
.BAL:
move.w a2,104*16(a3)
move.w a2,104*12(a3)
move.w a2,104*8(a3)
move.w a2,104*4(a3)
bra.s .BAB
.BumpAcrossHigh:
move.w (a1,d0.w*2),a2
lsr.b #1,d0
bcc.s .BAB
move.w a2,104*8(a3)
move.w a2,104*4(a3)
.BAB:
move.w a2,(a3)
addq #4,a3
add.w a4,d3
addx.l d2,d5
dbcs d7,.BumpAcross
dbcc d7,.BumpBefore
bcc.s .Bumppast1
add.w #256,d5
.Bumppast1:
move.w d4,d7
bne.s .notdoneyet
rts
.notdoneyet:
cmp.w #32,d7
ble.s .notoowide
move.w #32,d7
.notoowide
sub.w d7,d4
addq #4,a3
dbra d7,.BumpAcross
tstend:
CACHE_FREEZE_ON d2
rts
*****************************
SixBelowS:
moveq #0,d0
dbra d7,.BumpAcross
.BumpBefore:
and.w d1,d5
move.b (a0,d5.w*4),d0
blt.s .BumpBeforeHigh
move.w (a1,d0.w*2),a2
lsr.b #1,d0
bcc.s .BBL
move.w a2,104*24(a3)
move.w a2,104*20(a3)
.BBL:
move.w a2,104*16(a3)
move.w a2,104*12(a3)
move.w a2,104*8(a3)
move.w a2,104*4(a3)
bra.s .BBB
.BumpBeforeHigh:
move.w (a1,d0.w*2),a2
lsr.b #1,d0
bcc.s .BBB
move.w a2,104*8(a3)
move.w a2,104*4(a3)
.BBB:
move.w a2,(a3)
addq #4,a3
add.w a4,d3
addx.l d6,d5
dbcs d7,.BumpAcross
dbcc d7,.BumpBefore
bcc.s .Bumppast1
add.w #256,d5
bra.s .Bumppast1
.BumpAcross:
and.w d1,d5
move.b (a0,d5.w*4),d0
blt.s .BumpAcrossHigh
move.w (a1,d0.w*2),a2
lsr.b #1,d0
bcc.s .BAL
move.w a2,104*24(a3)
move.w a2,104*20(a3)
.BAL:
move.w a2,104*16(a3)
move.w a2,104*12(a3)
move.w a2,104*8(a3)
move.w a2,104*4(a3)
bra.s .BAB
.BumpAcrossHigh:
move.w (a1,d0.w*2),a2
lsr.b #1,d0
bcc.s .BAB
move.w a2,104*8(a3)
move.w a2,104*4(a3)
.BAB:
move.w a2,(a3)
addq #4,a3
add.w a4,d3
addx.l d2,d5
dbcs d7,.BumpAcross
dbcc d7,.BumpBefore
bcc.s .Bumppast1
add.w #256,d5
.Bumppast1:
move.w d4,d7
bne.s .notdoneyet
rts
.notdoneyet:
cmp.w #32,d7
ble.s .notoowide
move.w #32,d7
.notoowide
sub.w d7,d4
addq #4,a3
dbra d7,.BumpAcross
CACHE_FREEZE_ON d2
rts
SevenBelowS:
moveq #0,d0
dbra d7,.BumpAcross
.BumpBefore:
and.w d1,d5
move.b (a0,d5.w*4),d0
blt.s .BumpBeforeHigh
move.w (a1,d0.w*2),a2
lsr.b #1,d0
bcc.s .BBL
move.w a2,104*28(a3)
move.w a2,104*24(a3)
.BBL:
move.w a2,104*20(a3)
move.w a2,104*16(a3)
move.w a2,104*12(a3)
move.w a2,104*8(a3)
move.w a2,104*4(a3)
bra.s .BBB
.BumpBeforeHigh:
move.w (a1,d0.w*2),a2
lsr.b #1,d0
bcc.s .BBB
move.w a2,104*8(a3)
move.w a2,104*4(a3)
.BBB:
move.w a2,(a3)
addq #4,a3
add.w a4,d3
addx.l d6,d5
dbcs d7,.BumpAcross
dbcc d7,.BumpBefore
bcc.s .Bumppast1
add.w #256,d5
bra.s .Bumppast1
.BumpAcross:
and.w d1,d5
move.b (a0,d5.w*4),d0
blt.s .BumpAcrossHigh
move.w (a1,d0.w*2),a2
lsr.b #1,d0
bcc.s .BAL
move.w a2,104*28(a3)
move.w a2,104*24(a3)
.BAL:
move.w a2,104*20(a3)
move.w a2,104*16(a3)
move.w a2,104*12(a3)
move.w a2,104*8(a3)
move.w a2,104*4(a3)
bra.s .BAB
.BumpAcrossHigh:
move.w (a1,d0.w*2),a2
lsr.b #1,d0
bcc.s .BAB
move.w a2,104*8(a3)
move.w a2,104*4(a3)
.BAB:
move.w a2,(a3)
addq #4,a3
add.w a4,d3
addx.l d2,d5
dbcs d7,.BumpAcross
dbcc d7,.BumpBefore
bcc.s .Bumppast1
add.w #256,d5
.Bumppast1:
move.w d4,d7
bne.s .notdoneyet
rts
.notdoneyet:
cmp.w #32,d7
ble.s .notoowide
move.w #32,d7
.notoowide
sub.w d7,d4
addq #4,a3
dbra d7,.BumpAcross
CACHE_FREEZE_ON d2
rts
smooththefloor:
move.l #14*128,d0
divs dst,d0
subq.w #1,d0
blt ordinary
; beq.s OneAbove
subq.w #2,d0
; blt TwoAbove
; beq ThreeAbove
subq.w #2,d0
; blt FourAbove
; beq FiveAbove
subq.w #2,d0
; blt SixAbove
; beq SevenAbove
; bra EightAbove
moveq #0,d0
rts